import Cookie from "js-cookie";
export default {

    state: {
        isCollapse: false,
        tabsList: [
            {
                path: "/",
                name: "home",
                label: "首页",
                icon: "s-home",
                url: "Home/Home",
            }
        ], // 面包屑的数据
        menu: []

    },

    mutations: {
        collapsMenu(state) {
            state.isCollapse = !state.isCollapse
        },
        // 修改面包屑中的数据
        selectMenu(state, link) {

            if(link.name !== 'home') {
                const idx = state.tabsList.findIndex(item => item.name === link.name)
                if(idx === -1) {
                    state.tabsList.push(link)
                }
                state.lastPath = link.name
            }
        },
        // 删除指定的 tag 数据
        closeTag(state, item) {
            const idx = state.tabsList.findIndex(val => val.name === item.name)
            state.tabsList.splice(idx, 1)
        },
        // 设置menu 的数据
        setMenu(state, val) {
            state.menu = val
            Cookie.set('menu', JSON.stringify(val))
        },
        // 动态注册路由
        // addMenu(state, router) {
        //     // 判断缓存是否有数据
        //     if(!Cookie.get('menu')) return
        //     const menu = JSON.parse(Cookie.get('menu'))
        //     // 数据更新
        //     state.menu = menu
        //     // 组装动态路由数据
        //     const menuArr = []
        //     menu.forEach(item => {
        //         if(item.children) {
        //             item.children = item.children.map(item => {
        //                 item.component = () => import(`@/views/${item.url}`)
        //                 return item
        //             })
        //             menuArr.push(...item.children)
        //         }else {
        //             item.component = () => import(`@/views/${item.url}`)
        //             menuArr.push(item)
        //         }
        //     })
        //     console.log(menuArr, 'menuArr')
        //     // 路由的动态添加
        //     menuArr.forEach(item => {
        //         router.addRoute('Main', item)
        //     })
        //
        // }
        addMenu(state, router) {
            // 判断缓存中是否有数据
            if (!Cookie.get('menu')) return
            const menu = JSON.parse(Cookie.get('menu'))
            state.menu = menu
            // 组装动态路由的数据
            const menuArray = []
            menu.forEach(item => {
                if (item.children) {
                    item.children = item.children.map(item => {

                        item.component = () => import(`../views/${item.url}`)
                        return item
                    })
                    menuArray.push(...item.children)
                } else {

                    item.component = () => import(`../views/${item.url}`)
                    menuArray.push(item)
                }
            })

            // 路由的动态添加
            menuArray.forEach(item => {
                router.addRoute('Main', item)
            })
        }
    }
}